home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / other / systracker_src / src / st_actions.c next >
Encoding:
C/C++ Source or Header  |  2000-02-28  |  9.7 KB  |  385 lines

  1. /***************************************************************************/
  2. /* st_actions.c - Actions for events (i.e. when a UI widget is pressed).   */
  3. /*                                                                         */
  4. /* Copyright © 1999-2000 Andrew Bell. All rights reserved.                 */
  5. /***************************************************************************/
  6.  
  7. #include "SysTracker_rev.h"
  8. #include "st_include.h"
  9. #include "st_protos.h"
  10. #include "st_strings.h"
  11.  
  12. /***************************************************************************/
  13.  
  14.  
  15. GPROTO BOOL ACT_SigEvent( ULONG SigEvent )
  16. {
  17.   /*********************************************************************
  18.    *
  19.    * ACT_SigEvent()
  20.    *
  21.    * If TRUE is returned then SysTracker will quit.
  22.    *
  23.    *********************************************************************
  24.    *
  25.    */
  26.  
  27.   BOOL Result = FALSE;
  28.  
  29.   if (ARTL_CheckProcSignals(SigEvent))
  30.     Result = FALSE;
  31.  
  32.   return FALSE;
  33. }
  34.  
  35. GPROTO void ACT_Main_TrackMode( void )
  36. {
  37.   /*********************************************************************
  38.    *
  39.    * ACT_Main_TrackMode()
  40.    *
  41.    *********************************************************************
  42.    *
  43.    */
  44.  
  45.   register struct AppNode *SelectedAN;
  46.  
  47.   ARTL_Set_TrackMode(GUI_Get_Cycle_Active(OID_MAIN_TRKMODE));
  48.   SelectedAN = GUI_Get_List_Active(OID_MAIN_APPLIST);
  49.  
  50.   if (SelectedAN)
  51.     ARTL_UpdateTL((struct List *) &SelectedAN->an_TrackerList);
  52.   else
  53.     GUI_Act_List_Clear(OID_MAIN_TRACKERLIST);
  54.  
  55. }
  56.  
  57. GPROTO void ACT_Main_Save( void )
  58. {
  59.   /*********************************************************************
  60.    *
  61.    * ACT_Main_Save()
  62.    *
  63.    *********************************************************************
  64.    *
  65.    */
  66.  
  67.   UBYTE PathBuf[256+2]; ULONG Response; BOOL SaveAll;
  68.   
  69.   Response = GUI_Popup("Request",
  70.  
  71.     "Do you want to save a list of all the resources allocated by\n"
  72.     "each application or just the currently allocated resources?",
  73.  
  74.     NULL, "All|Current|Cancel");
  75.  
  76.   if (Response == 0) return; /* Cancel */
  77.   else if (Response == 1) SaveAll = TRUE;
  78.   else SaveAll = FALSE;
  79.   
  80.   if (GUI_OpenSaveReq((UBYTE *)&PathBuf, 256))
  81.     ARTL_SaveALAsASCII(ARTL_GetAppList(), PathBuf, SaveAll);
  82. }
  83.  
  84. GPROTO void ACT_Main_Update( void )
  85. {
  86.   /*********************************************************************
  87.    *
  88.    * ACT_Main_Update()
  89.    *
  90.    *********************************************************************
  91.    *
  92.    */
  93.  
  94.   register struct AppNode *SelectedAN = NULL;       
  95.   register struct Task *SelectedTaskPtr = NULL;
  96.  
  97.   /* Store the selected entry */
  98.  
  99.   if (SelectedAN = GUI_Get_List_Active(OID_MAIN_APPLIST))
  100.     SelectedTaskPtr = SelectedAN->an_TaskPtr;
  101.  
  102.   ARTL_UpdateAL(ARTL_GetAppList());
  103.  
  104.   /* Reselect the previously selected entry */
  105.  
  106.   if (SelectedAN && SelectedTaskPtr)
  107.   {
  108.     register LONG Index = ARTL_GetANListIndex_ViaTaskPtr(SelectedTaskPtr);
  109.  
  110.     if (Index != -1) GUI_Set_List_Active(OID_MAIN_APPLIST, Index);
  111.   }
  112. }
  113.  
  114. GPROTO void ACT_Main_TrackerListview_DoubleClick( void )
  115. {
  116.   /*********************************************************************
  117.    *
  118.    * ACT_Main_TrackerListview_DoubleClick()
  119.    *
  120.    *********************************************************************
  121.    *
  122.    */
  123.  
  124.   register struct TrackerNode *SelectedTN;
  125.  
  126.   if (SelectedTN = GUI_Get_List_Active(OID_MAIN_TRACKERLIST))
  127.   {
  128.     register UBYTE *ResName = STR_Get(SID_UNKNOWN_BRACKET);
  129.  
  130.     GUI_Act_List_Clear(OID_APPUSING_LISTVIEW);
  131.  
  132.     switch (SelectedTN->tn_ID)
  133.     {
  134.       case PMSGID_OPENLIBRARY:  ResName = SelectedTN->tn_LibName;  break;
  135.       case PMSGID_OPENDEVICE:   ResName = SelectedTN->tn_DevName;  break;
  136.       case PMSGID_OPENFONT:     ResName = SelectedTN->tn_FontName; break;
  137.       case PMSGID_OPENFROMLOCK: ResName = SelectedTN->tn_FHName;   break;
  138.       case PMSGID_OPEN:         ResName = SelectedTN->tn_FHName;   break;
  139.       case PMSGID_LOCK:         ResName = SelectedTN->tn_LockName; break;
  140.     }
  141.  
  142.     GUI_Set_Text_Contents(OID_APPUSING_RESNAME, ResName);
  143.     GUI_Set_List_Quiet(OID_APPUSING_LISTVIEW, TRUE);
  144.  
  145.     /* Scan the entire AppList for apps using this resource. */
  146.  
  147.     ARTL_FindAppsUsingRes(SelectedTN, ARTL_GetAppList());
  148.  
  149.     GUI_Set_List_Quiet(OID_APPUSING_LISTVIEW, FALSE);
  150.     GUI_Act_Window_Open(OID_APPUSING_WINDOW, TRUE);
  151.   }
  152. }
  153.  
  154. GPROTO void ACT_Main_TrackerListview_SingleClick( void )
  155. {
  156.   /*********************************************************************
  157.    *
  158.    * ACT_Main_TrackerListview_SingleClick()
  159.    *
  160.    *********************************************************************
  161.    *
  162.    */
  163. }
  164.  
  165. GPROTO void ACT_Main_AppListview_SingleClick( void )
  166. {
  167.   /*********************************************************************
  168.    *
  169.    * ACT_Main_AppListview_SingleClick()
  170.    *
  171.    *********************************************************************
  172.    *
  173.    */
  174.  
  175.   register struct AppNode *SelectedAN;
  176.  
  177.   SelectedAN = GUI_Get_List_Active(OID_MAIN_APPLIST);
  178.  
  179.   if (SelectedAN != NULL)
  180.   {
  181.     GUI_Set_Text_Contents(OID_MAIN_OPENCNT, "");
  182.     ARTL_UpdateTL((struct List *) &SelectedAN->an_TrackerList);       
  183.   }
  184.   else
  185.   {
  186.     GUI_Set_Text_Contents(OID_MAIN_OPENCNT, "");
  187.     GUI_Act_List_Clear(OID_MAIN_TRACKERLIST);
  188.   }
  189. }
  190.  
  191. GPROTO void ACT_Main_Menu_Project_About( void )
  192. {
  193.   /*********************************************************************
  194.    *
  195.    * ACT_Main_Menu_Project_About()
  196.    *
  197.    *********************************************************************
  198.    *
  199.    */
  200.  
  201.   ULONG PMsgCnt = ARTL_GetPMsgCnt();
  202.  
  203.   GUI_Popup("About...",
  204.     VERS " (" DATE "),\n"
  205.     "Copyright © " YEAR " Andrew Bell. All rights reserved.\n"
  206.     "\n"
  207.     "Please understand that this software is still very experimental and\n"
  208.     "has the potential to crash your system at any time.\n"
  209.     "\n"
  210.     "email: " EMAILADDY "\n"
  211.     "www: " WEBADDY "\n"
  212.     "\n"
  213.     "Feal free to contact me about this software. Visit my website\n"
  214.     "and make sure that you're using the latest version.\n"
  215.     "\n"
  216.     "(PMsg count is %lu)" , &PMsgCnt, "Continue");  
  217. }
  218.  
  219. GPROTO void ACT_Main_Menu_Project_About_MUI( void )
  220.   /*********************************************************************
  221.    *
  222.    * ACT_Main_Menu_Project_About_MUI()
  223.    *
  224.    *********************************************************************
  225.    *
  226.    */
  227.  
  228.   GUI_Act_AboutGUISystem()
  229. }
  230.  
  231. GPROTO void ACT_Main_Menu_Project_Settings_MUI( void )
  232. {
  233.   /*********************************************************************
  234.    *
  235.    * ACT_Main_Menu_Project_Settings_MUI()
  236.    *
  237.    *********************************************************************
  238.    *
  239.    */
  240.  
  241.   GUI_Act_ConfigureGUISystem()
  242. }
  243.  
  244. GPROTO void ACT_Main_Menu_Project_Hide( void )
  245. {
  246.   /*********************************************************************
  247.    *
  248.    * ACT_Main_Menu_Project_Hide()
  249.    *
  250.    *********************************************************************
  251.    *
  252.    */
  253.  
  254.   GUI_Set_App_Iconified(TRUE);
  255. }
  256.  
  257. GPROTO void ACT_Main_Menu_Control_Reset( void )
  258. {
  259.   /*********************************************************************
  260.    *
  261.    * ACT_Main_Menu_Control_Reset()
  262.    *
  263.    *********************************************************************
  264.    *
  265.    */
  266.  
  267.   GUI_Act_List_Clear(OID_MAIN_TRACKERLIST);
  268.   ARTL_FlushAL(ARTL_GetAppList());
  269.   ARTL_UpdateAL(ARTL_GetAppList());
  270. }
  271.  
  272. GPROTO void ACT_Main_Menu_Control_ClearDeadApps( void )
  273. {
  274.   /*********************************************************************
  275.    *
  276.    * ACT_Main_Menu_Control_ClearDeadApps()
  277.    *
  278.    *********************************************************************
  279.    *
  280.    */
  281.  
  282.   register struct AppNode *SelectedAN = NULL;       
  283.   register struct Task *SelectedTaskPtr = NULL;
  284.  
  285.   if (SelectedAN = GUI_Get_List_Active(OID_MAIN_APPLIST))
  286.     SelectedTaskPtr = SelectedAN->an_TaskPtr;
  287.  
  288.   ARTL_ClearDeadANs(ARTL_GetAppList());
  289.  
  290.   /* Reselect the previously selected entry */
  291.  
  292.   if (SelectedAN && SelectedTaskPtr)
  293.   {
  294.     register LONG Index = ARTL_GetANListIndex_ViaTaskPtr(SelectedTaskPtr);
  295.  
  296.     if (Index != -1)
  297.       GUI_Set_List_Active(OID_MAIN_APPLIST, Index);
  298.   }
  299. }
  300.  
  301. GPROTO void ACT_Main_Menu_Control_TrackUnusedResources( BOOL Checked )
  302. {
  303.   /*********************************************************************
  304.    *
  305.    * ACT_Main_Menu_Control_TrackUnusedResources()
  306.    *
  307.    *********************************************************************
  308.    *
  309.    */
  310.  
  311.   if (cfg_TrackUnusedResources = Checked)
  312.   {
  313.     GUI_Set_Menuitem_Enabled(OID_MAIN_WINDOW,
  314.       OID_MAIN_MENU_CONTROL_SHOWUNUSEDRES, TRUE);
  315.  
  316.     ACT_Main_Update();
  317.   }
  318.   else
  319.   {
  320.     GUI_Set_Menuitem_Enabled(OID_MAIN_WINDOW,
  321.         OID_MAIN_MENU_CONTROL_SHOWUNUSEDRES, FALSE);
  322.  
  323.     ACT_Main_Menu_Control_ClearUnusedRes();
  324.   }
  325. }
  326.  
  327. GPROTO void ACT_Main_Menu_Control_ShowUnusedResources( BOOL Checked )
  328. {
  329.   /*********************************************************************
  330.    *
  331.    * ACT_Main_Menu_Control_ShowUnusedResources()
  332.    *
  333.    *********************************************************************
  334.    *
  335.    */
  336.  
  337.   cfg_ShowUnusedResources = Checked;  
  338.   ACT_Main_Update();  
  339. }
  340.  
  341.  
  342. GPROTO void ACT_Main_Menu_Control_ClearUnusedRes( void )
  343. {
  344.   /*********************************************************************
  345.    *
  346.    * ACT_Main_Menu_Control_ClearUnusedRes()
  347.    *
  348.    *********************************************************************
  349.    *
  350.    */
  351.  
  352.   register struct AppNode *SelectedAN = NULL;       
  353.   register struct Task *SelectedTaskPtr = NULL;
  354.  
  355.   SelectedAN = GUI_Get_List_Active(OID_MAIN_APPLIST);
  356.  
  357.   if (SelectedAN)
  358.     SelectedTaskPtr = SelectedAN->an_TaskPtr;
  359.  
  360.   ARTL_ClearUnusedANs(ARTL_GetAppList());
  361.  
  362.   /* Reselect the previously selected entry */
  363.  
  364.   if (SelectedAN && SelectedTaskPtr)
  365.   {
  366.     register LONG Index = ARTL_GetANListIndex_ViaTaskPtr(SelectedTaskPtr);
  367.  
  368.     if (Index != -1)
  369.       GUI_Set_List_Active(OID_MAIN_APPLIST, Index);
  370.   }
  371. }
  372.  
  373.  
  374.  
  375.   /*********************************************************************
  376.    *
  377.    * 
  378.    *
  379.    *********************************************************************
  380.    *
  381.    */
  382.  
  383.  
  384.